<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        // 封装
		var name = "张学友";
		var age = 18;
		
		function sayHello() {
			console.log("hello world");
		}
		
		var obj = {
			name : "刘德华",
			age : 18,
			sayHello : function () {
				// ...
			}
		}
		
		var itcast = {
			getEle: {
				
			},
		}
		// 继承
		// JavaScript当中的继承是指
		// 一个对象没有一些方法和属性,但是另一个对象有
		// 把另一个对象的属性和方法,拿过来使用,就是继承
		
		var obj = {
			
		};
		var obj1 = {
			name : "张学友",
			sayHello: function () {
			    console.log("你好，我是张学友");
			}
		}
		// obj.sayHello();
		// 混入式继承  (mix-in)   for in
		
		for(var k in obj1){
			// k可以获取到对象的每一个属性
			// obj[k]可以获取到对象的每一个属性的值
			// 注意:这里使用k给对象新增属性的时候,不可以使用点语法
			obj[k] = obj1[k];
		}
		obj.sayHello();
		
		console.log(obj);
		
		// java
		// class
		// Class Person() {
		// 	string name;
		// 	int age;
		// 	public void sayHello(){
		// 		
		// 	}
		// }
		// Class Student:extend Person{
		// 	
		// }
		
		
		// 多态
		// 多态是在强类型语言中比较常用,JavaScript中没有相应的体现
		// Animal	父类   父类的属性和方法供所有的子类共享  但是父类不能
		// 访问子类的属性和方法
		// Dog 子类
		// Cat 子类
		
		Animal an = new Animal();
		Dog dog = new Dog();
		
		Animal an = new Dog();
		// 使用父类的引用(指针)指向子类的对象 就叫做多态
		// 使用多态来隐藏不同
    </script>
	
</head>
<body>

</body>
</html>